查看原文
其他

Stata详细教程:Cox回归和比例风险假定检验

张明宇 医咖会 2021-01-15

在上一期的《手把手教Stata生存分析》中,我们一起学习了使用Stata进行Kaplan-Meier曲线的绘制以及Log-rank检验的方法。作为最基本的生存分析工具之一,K-M曲线可以让我们对于两组或多组患者的生存率、死亡率进行直观的比较,Log-rank检验也可以让我们得到统计学上的相应证据。


然而,作为一种非参数估计方法,K-M方法不能控制潜在的混杂因素对于结局事件的影响,也不能让我们看出某一种因素(例如患者性别、年龄)是否是结局发生的独立因素之一。


今天,我们就一起来学习如何使用Stata进行Cox回归分析以及比例风险假定(Proportional hazard assumption, PH假定)的检验

1. 问题与数据

问题:在一个抗癌药物的临床试验中,48名患者被随机分配到新药组(28人)和安慰剂组(20人),研究人员想知道新药是否影响患者的生存情况。


数据:我们这次仍然使用上次使用的癌症药物临床试验的数据集。请大家在command对话框中输入“webuse drugtr”以调入这个数据集。


上次我们已经进行过了数据的初步观测、将数据转化为生存数据格式。如果不了解如何操作,请参考上一期的文章。今天,我们直接开始Cox回归分析。

2. Cox回归

Step 1:通过Statistics > Survival analysis > Regression models > Cox proportional hazards model找到操作的对话框。


Step 2:选项设置。


由于我们已经在一开始将数据转化为生存数据的时候指定过终点事件、时间变量,我们在这里只需要设置需要在回归方程中控制的变量即可。例如,我们想看drug对于生存的影响,便在Independent variables的下拉菜单中选择drug,点击OK。



屏幕上出现结果:


 

我们可以看到,Drug变量的Hazard Ratio (风险比) 是0.133,95%置信区间为0.056至0.314。这说明和Drug=0 (安慰剂组) 相比,Drug=1 (新药) 可显著降低终点事件 (died=1) 发生的风险 (p<0.001)。


然而,在这个模型中,我们没有调整其他的混杂因素。研究人员思考,有没有可能患者的年龄也是终点事件发生的一个独立危险因素呢? 为了解决这个问题,我们可以把age也纳入cox回归的模型。



得到的结果如下:


 

我们可以看到,drug变量的风险比变成了0.105 (95% CI: 0.043, 0.256), age变量的风险比为1.120 (95% CI: 1.041, 1.205)。我们得出结论:


1) 在控制了患者年龄后,和安慰剂相比,新药可显著降低终点事件发生的风险 (p<0.001)。


2) 患者年龄是终点事件发生的独立危险因素。在控制了治疗方法后,患者年龄每增加1岁,发生终点事件的风险增加到原来的1.120倍(p=0.002)。

3. PH假定的检验

在cox回归之后,我们需要检验模型是否满足PH假定。通过Statistics > Survival analysis > Regression models > Test proportional-hazards assumption找到操作的对话框。


 

我们选择默认的Schoenfeld Residuals方法,点击OK。屏幕上出现结果如下:


 

请注意,PH假定的检验基于上一步cox回归纳入的变量。如果上一步没有进行cox回归分析,屏幕上会显示“last estimates not found”的错误代码。


 

在这个例子中,在stcox drug age这个命令后,我们进行了PH假定的检验。该检验的零假设是纳入Cox回归模型的变量满足PH假定(drug变量和age变量满足PH假定),因为p=0.8064,大于0.05,不能拒绝零假设。因此,PH假定成立。


我们也可以通过图像直观地观测某个变量是否满足PH假定,更加直观地在论文中中展现结果。不同于上述的检验方法,在使用图像展示时,我们只能看某一个变量是否满足PH假定(我们可以控制其他变量,下文提到)。


我们可以通过Statistics > Survival analysis > Regression models > Graphically assess proportional-hazards assumption找到操作的对话框。我们在Independent variable 这里选择drug, 看一看drug是否满足PH假定。点击OK。


 

我们可以看到在下图中,在任何一个时间节点上,drug=1几乎都是平行于drug=2的线,因此PH假定成立。


 

在这个例子中,如果我们勾选上对话框中的“adjust estimates”,便可以控制其他一个或多个变量,然后看drug变量是否满足PH假定。

4. 其他注意事项

1)  所有对话框操作均可通过command实现


cox回归的命令:cox var1 var2 var3 


解释:在这个命令中,var是自变量名字。请注意,cox回归中不需要指定因变量(y变量),因为我们在stset时已经指定过结局变量了 (请参考上期推送)


检验PH假定的命令:estat phtest


解释:请注意,这个命令需要紧跟在cox回归的命令之后,否则Stata不知道检验哪个回归的PH假定。


绘制PH假定图像的命令:stphplot, by(var1) adjust(var2) 


解释:var1是自变量名,var2是希望控制的变量。注意,这个命令不一定要跟在cox回归之后。


2) 我们也可以在回归模型中控制更多的危险因素。如果选择将哪些危险因素放入模型可以参考我们之前的文章:SPSS详细操作:生存资料的Cox回归分析


3) 如果某变量不满足PH假定,我们则应当将变量放入Strata框中进行分层变量控制。我们可以在Cox回归的对话框中选择需要分层的变量。


 

4) 在解读结果时,一定要强调3点:

  • 控制了哪些变量? (e.g. 在控制了患者年龄、性别后…)

  • 和谁比? (e.g. 和安慰剂相比,治疗组…; 和体重正常的人比,超重的人…)

  • 量化 (给出95%置信区间、p值)


各位伙伴,我们打算推出Stata系列视频课程,初步预定一周一期,每期视频5分钟。从Stata入门知识讲起,到基本统计方法和作图方法,再到回归分析、生存分析等等。我们力争提供一个全面系统的Stata手把手教程,帮助大家掌握这款软件,提高科研效率!对此课程有任何想法,请记得在下方留言哦。


更多阅读

1. 手把手教Stata做生存分析:K-M曲线绘制和Logrank检验

2. 如何用Stata作漂亮的图?来看超详细教程!

3. SPSS详细操作:生存资料的Cox回归分析

4. 50种SPSS教程、10种样本量计算教程...全部为你整理在这里!

医咖会微信:medieco-ykh

关注医咖会,轻松学习统计学~


快加小咖个人微信(xys2016ykf),拉你进统计讨论群和众多热爱研究的小伙伴们一起交流学习。


点击左下角“阅读原文”,看看医咖会既往推送了哪些统计教程。或者使用电脑打开网址:http://www.mediecogroup.com/,查看60种SPSS教程。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存